package com.itcg.springboot01change.service;


import com.itcg.springboot01change.pojo.Account;
import org.apache.ibatis.annotations.Param;

import java.util.List;

//操作账户Account的业务层接口
public interface AccountService {
    /**
     * 添加账户
     *
     * @param account
     */
    void insert(Account account);

    /**
     * 根据id删除账户
     *
     * @param id
     */
    void delete(Integer id);

    /**
     * 根据id修改账户
     *
     * @param account
     */
    void update(Account account);

    /**
     * 查询所有账户
     *
     * @return
     */
    List<Account> selectAll();

    /**
     * 根据id查询账户
     *
     * @param id
     * @return
     */
    Account selectById(Integer id);

    /**
     * 根据账户名称查询账户
     *
     * @param name
     * @return
     */
    Account selectByName(String name);

    /**
     * 转账
     *
     * @param inName  入账账号
     * @param outName 出账账号
     * @param money   转账金额
     */
    void transfer(String inName, String outName, Double money);

    /**
     * 分页
     *
     * @param homeAddress   显示每一页显示的数据
     * @param StartingIndex 起始索引
     * @param pageSize      每页显示记录数
     * @return List<Account>集合
     */
    List<Account> finaPageAccount(String homeAddress, Integer StartingIndex, Integer pageSize);

    /**
     * 总记录数
     *
     * @param homeAddress 要查询的数据
     * @return
     */
    Long findCount(String homeAddress);
}
